package com.qdc.datacenters.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;


/**
 * 企业微信群成员(CorpGroupMember)表实体类
 *
 * @author danmo
 * @since 2024-03-04 23:15:33
 */
@Schema
@Data
@SuppressWarnings("serial")
@TableName("corp_group_member")
public class CorpGroupMember extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 399625656401599890L;

    /**
     * 主键ID
     */

    @Schema(description = "主键ID")
    @TableId(type = IdType.AUTO)
    private Long id;


    /**
     * 群id
     */
    @Schema(description = "群id")
    @TableField("chat_id")
    private String chatId;


    /**
     * 群成员id
     */
    @Schema(description = "群成员id")
    @TableField("user_id")
    private String userId;


    /**
     * 外部联系人在微信开放平台的唯一身份标识
     */
    @Schema(description = "外部联系人在微信开放平台的唯一身份标识")
    @TableField("union_id")
    private String unionId;


    /**
     * 加群时间
     */
    @Schema(description = "加群时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("join_time")
    private Date joinTime;


    /**
     * 加入方式 1 - 由群成员邀请入群（直接邀请入群) 2 - 由群成员邀请入群（通过邀请链接入群）3 - 通过扫描群二维码入群
     */
    @Schema(description = "加入方式 1 - 由群成员邀请入群（直接邀请入群) 2 - 由群成员邀请入群（通过邀请链接入群）3 - 通过扫描群二维码入群")
    @TableField("join_scene")
    private Integer joinScene;


    /**
     * 成员类型:1 - 企业成员;2 - 外部联系人
     */
    @Schema(description = "成员类型:1 - 企业成员;2 - 外部联系人")
    @TableField("type")
    private Integer type;


    /**
     * 在群里的昵称
     */
    @Schema(description = "在群里的昵称")
    @TableField("group_nick_name")
    private String groupNickName;


    /**
     * 名字
     */
    @Schema(description = "名字")
    @TableField("name")
    private String name;


    /**
     * 邀请人userId
     */
    @Schema(description = "邀请人userId")
    @TableField("invitor_user_id")
    private String invitorUserId;


    /**
     * 员的退群方式 0-自己退群 1-群主/群管理员移出
     */
    @Schema(description = "员的退群方式 0-自己退群 1-群主/群管理员移出")
    @TableField("quit_scene")
    private Integer quitScene;


    /**
     * 退出时间
     */
    @Schema(description = "退出时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("quit_time")
    private Date quitTime;


    /**
     * 用户加群渠道id
     */
    @Schema(description = "用户加群渠道id")
    @TableField("state")
    private String state;


    /**
     * 是否开启会话存档 0：关闭 1：开启
     */
    @Schema(description = "是否开启会话存档 0：关闭 1：开启")
    @TableField("is_open_chat")
    private Integer isOpenChat;


    /**
     * 开通会话存档时间
     */
    @Schema(description = "开通会话存档时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("open_chat_time")
    private Date openChatTime;



}

